package com.company.笔试.生成不重复验证码;

import java.util.*;
import java.util.stream.Collectors;


public class Solution {


    public static void main(String[] args) {
        short a = 1;
        byte b= 2;
        //a = a+b;  //对于short和byte类型加法时候会提升为int 再进行加法运算
        a += b;   // 自动类型转化


        Solution solution = new Solution();
        Arrays.asList(solution.Permutation(new char[]{'0', '1', '2'}, 2)).stream().forEach(x-> System.out.println(x));

    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *根据指定的种子(不要有重复字符)，生成指定验证码个数的字符串数组，要求验证码不能有重复字符，返回值需要生成所有可能的排列，为了便于验证结果，返回值请按照字典顺序的升序返回
     * [0,1,2],2
     * ["01","02","10","12","20","21"]
     * @param seed char字符型一维数组 字符种子
     * @param size int整型 验证码长度
     * @return string字符串一维数组
     */



    public String[] Permutation (char[] seed, int size) {
        // write code here
        int len = seed.length;
        ArrayList<String> res = new ArrayList<>();
        for (int i = 0; i < size; i++) {
            StringBuffer sb = new StringBuffer();
            sb.append(seed[i]);
            for (int j = i+1; j <len&&sb.length()<size ; j++) {
                sb.append(seed[j]);
            }
            res.add(sb.toString());
        }




        String[] objects = res.stream().toArray(String[]::new);
        return objects;
    }

}